﻿
using System;
using System.Runtime.Serialization;
using V82;
using V82.Перечисления;//Ссылка;
namespace V82.Перечисления//Ссылка
{
	[DataContract]
	public enum СпособыВеденияПартионногоУчетаПоОрганизациям
	{
		[NonSerialized]
		ПустаяСсылка = - 1,
		[EnumMember(Value = "{\"Ссылка\":\"00b492b3-b4a0-4111-95f9-6306a2d0d1aa\", \"Представление\":\"НеВедется\"}")]
		НеВедется = 0,//Не ведется
		[EnumMember(Value = "{\"Ссылка\":\"0e98b873-75ea-45e4-bbc5-1e173577e6db\", \"Представление\":\"ПоКомпанииВЦелом\"}")]
		ПоКомпанииВЦелом = 1,//По компании в целом
		[EnumMember(Value = "{\"Ссылка\":\"661859a1-2f06-4fc6-a494-fda0632ed632\", \"Представление\":\"ПоГоловнойОрганизации\"}")]
		ПоГоловнойОрганизации = 2,//По головной организации
		[EnumMember(Value = "{\"Ссылка\":\"345e854e-3d02-46cf-ba4e-00e8a7cadcda\", \"Представление\":\"ПоТекущейОрганизации\"}")]
		ПоТекущейОрганизации = 3,//По текущей организации
	}
	public static partial class СпособыВеденияПартионногоУчетаПоОрганизациям_Значения//:ПеречислениеСсылка
	{
		public static readonly Guid НеВедется = new Guid("0663f995-d0a2-aad1-4111-b4a000b492b3");//Не ведется
		public static readonly Guid ПоКомпанииВЦелом = new Guid("171ec5bb-7735-dbe6-45e4-75ea0e98b873");//По компании в целом
		public static readonly Guid ПоГоловнойОрганизации = new Guid("a0fd94a4-2e63-32d6-4fc6-2f06661859a1");//По головной организации
		public static readonly Guid ПоТекущейОрганизации = new Guid("e8004eba-caa7-dadc-46cf-3d02345e854e");//По текущей организации
		public static СпособыВеденияПартионногоУчетаПоОрганизациям Получить(this СпособыВеденияПартионногоУчетаПоОрганизациям Значение, byte[] Ссылка)
		{
			return Получить(Значение, new Guid(Ссылка));
		}
		public static СпособыВеденияПартионногоУчетаПоОрганизациям Получить(this СпособыВеденияПартионногоУчетаПоОрганизациям Значение, Guid Ссылка)
		{
			if(Ссылка == НеВедется)
			{
				return СпособыВеденияПартионногоУчетаПоОрганизациям.НеВедется;
			}
			else if(Ссылка == ПоКомпанииВЦелом)
			{
				return СпособыВеденияПартионногоУчетаПоОрганизациям.ПоКомпанииВЦелом;
			}
			else if(Ссылка == ПоГоловнойОрганизации)
			{
				return СпособыВеденияПартионногоУчетаПоОрганизациям.ПоГоловнойОрганизации;
			}
			else if(Ссылка == ПоТекущейОрганизации)
			{
				return СпособыВеденияПартионногоУчетаПоОрганизациям.ПоТекущейОрганизации;
			}
			return СпособыВеденияПартионногоУчетаПоОрганизациям.ПустаяСсылка;
		}
		public static byte[] Ключ(this СпособыВеденияПартионногоУчетаПоОрганизациям Значение)
		{
			return Ссылка(Значение).ToByteArray();
		}
		public static Guid Ссылка(this СпособыВеденияПартионногоУчетаПоОрганизациям Значение)
		{
			switch (Значение)
			{
				case СпособыВеденияПартионногоУчетаПоОрганизациям.НеВедется: return НеВедется;
				case СпособыВеденияПартионногоУчетаПоОрганизациям.ПоКомпанииВЦелом: return ПоКомпанииВЦелом;
				case СпособыВеденияПартионногоУчетаПоОрганизациям.ПоГоловнойОрганизации: return ПоГоловнойОрганизации;
				case СпособыВеденияПартионногоУчетаПоОрганизациям.ПоТекущейОрганизации: return ПоТекущейОрганизации;
			}
			return Guid.Empty;
		}
	}
}